In known distributed software applications, software components are distributed among a plurality of executables (i.e., software capsules or software entities). Each of the executables contains one or more software components that perform some portion of the functionality of the distributed software application. The executables of the distributed software application may all run on a single processor or may be divided up and run across a plurality of processors.
During operation of the distributed software application, state information is created, system resources are allocated, and/or databases are updated. If the software components of a distributed software application shut down without a preplanned shutdown sequence, then the distributed software application may leave system resources in an inconsistent state. As one shortcoming, without a proper shutdown sequence, the distributed software application may not properly store the state information, release the allocated system resources, and/or update the databases.
During shutdown of a distributed software application divided into a plurality of executables running on a single processor, the distributed software application may shut down the executables by following a preplanned shutdown sequence for the executables. As one shortcoming, executing the shutdown sequence at the executable level may not serve to fully leave the system resources in a consistent state. The distributed software application may run on a single processor or the executables of the distributed software application may be divided across a plurality of processors. As another shortcoming, the shutdown sequence is unable to fully coordinate a shutdown of the executables and software components of the distributed software application divided across a plurality of processors.
Thus, a need exists to shut down a distributed software application in a manner that stores state information, releases system resources, and/or leaves the system resources in a consistent state.